package Ep09_DynamicProgram.DP4_0746;

/**
 * @author Jimmy Zhan WORKSTATION
 * @date 2023/7/6 15:48
 * 说明：使用最小花费爬楼梯
 */

public class Mine {
    public int minCostClimbingStairs(int[] cost) {
        int n = cost.length;
        int[] dp = new int[n+1];
        // 只有往上跳的时候才会花费代价，因此我们在0和1的位置的代价都是0
        dp[0] = 0;
        dp[1] = 0;
        for (int i = 2; i < n+1; ++i) {
            dp[i] = Math.min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2]);
        }
        return dp[n];
    }
}
